package gov.pr.celepar.sentinela.admin.action.consultas;

import gov.pr.celepar.framework.util.Pagina;
import gov.pr.celepar.sentinela.admin.action.BaseAction;
import gov.pr.celepar.sentinela.admin.dao.UsuarioDAO;
import gov.pr.celepar.sentinela.admin.dao.factory.DAOFactoryServer;
import gov.pr.celepar.sentinela.admin.excecao.SentinelaServerException;
import gov.pr.celepar.sentinela.admin.form.consultas.UsuariosGrupoReportForm;

import java.util.Collection;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

public class UsuariosGrupoReportAction extends BaseAction {

	private static Log logger = LogFactory
			.getLog(AtivacaoAuditoriaReportAction.class);

	public String executar(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {

		UsuariosGrupoReportForm udgForm = (UsuariosGrupoReportForm) form;

		Integer indicePagina = new Integer(udgForm.getIndice() == null ? "1"
				: udgForm.getIndice());
		Integer totalRegistros = null;

		if (udgForm.getCodGrupo() != null && !udgForm.getCodGrupo().equals("")) {
			DAOFactoryServer daof = DAOFactoryServer.getDAOFactory();
			logger.debug("Pegando informa��es da consulta");

			Collection dados = null;
			long total = 0;
			UsuarioDAO usuarioDAO = daof.getUsuarioDAO();

			// uso o mesmo método de auditoria que já está preparado para fazer
			// a consulta
			// certa ignorando as datas e o grupo, caso esses sejam NULOS
			// dados = ba.listarAuditoria(s, u, null, null,
			// null,udgForm.getLimite());

			dados = usuarioDAO.getUsuariosByGrupo(Long.decode(udgForm
					.getCodGrupo()));

			if (dados != null)
				total = dados.size();
			logger.debug("qt de dados: " + total);

			if (dados != null && !dados.isEmpty()) {
				totalRegistros = new Integer((int) total);
				Pagina pagina = new Pagina(totalRegistros, indicePagina,
						totalRegistros);
				pagina.setRegistros(dados);

				request.setAttribute("pagina", pagina); // preenche a página, se
				// a página estiver
				// preenchida, o JSP vai
				// desenhar o resultado

			} else {
				throw new SentinelaServerException(
						"Nenhum registro encontrado! ");
			}
		}

		return "usuarios_de_grupo";// esse retorno vai para o findFoward() da
		// classe mãe
	}
}
